import { MeshBasicMaterial, MeshStandardMaterial, Mesh, PerspectiveCamera, Raycaster, Scene, Texture, TextureLoader, WebGLRenderer, Vector2, RepeatWrapping, Color } from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";

// CLTF 模型加载器
const gltfLoader = new GLTFLoader()
// 射线投射器，可基于鼠标点和相机，在世界坐标体系内创立一条射线，用于选中模拟
const raycaster = new Raycaster()
// 鼠标在裁剪空间中的点位
const pointer = new Vector2();

export default class MachineRoom{
    // 渲染器
    'renderer':WebGLRenderer;
    // 场景
    'scane':Scene;
    // 相机 透视相机
    'camera': PerspectiveCamera;
    // 相机轨道控制器
    'controls': OrbitControls;
    // 存放模型文件的目录
    'modelPath':  string;
    // 纹理集合
    maps: Map<String, Texture> = new Map()
    // 机柜集合
    cabinets: Mesh[] = [];
    //鼠标划过的机柜
    'curCabinets': Mesh;
    
    // 初始化场景
    constructor(canvas:HTMLCanvasElement,modelPath:string = "https://ycyy-cdn.oss-cn-beijing.aliyuncs.com/"){

    }
}